草庐IT

Java 循环优化

全部标签

java - 为什么我的 Go 数组排序代码比 Java 慢很多?

将我的一个计算量大的后端程序从Java迁移到Go后,我发现性能没有提高而是下降了。我测试了一些,似乎数组排序代码是罪魁祸首(我在我的程序中大量使用它)。我写了下面两个简化的程序来做一个比较,Go内置的排序功能似乎比Java的Arrays.sort方法慢很多?packagemainimport("fmt""math/rand""sort""time")funcmain(){fmt.Println("Starting")constx=1000000consty=x*10vars[y]float64s1:=rand.NewSource(time.Now().UnixNano())r1:=ra

for-loop - 由于我的 if 语句,我的 for 循环停止处理

我想使用for循环获取所有位置fori:=0;i如果我只处理上面的函数,输出就是我想要的,直到我开始插入这个if语句ifword[i]-word[j]==0||word[i]-word[j]==1||word[i]-word[j]==2||word[i]-word[j]==3||word[i]-word[j]==255||word[i]-word[j]==254||word[i]-word[j]==253{returnword}else{return""}我的for循环只处理了单词中的一个字母后就停止了,它是i的0和j的1 最佳答案

go - 如何循环直到 *ipconn.Read() 读取了所有发送给它的数据

我在go中使用*ipconn.Write方法发送一些数据,但似乎*ipconn.Read()一次只能读取20个字节这里是服务器发送数据ln,err:=net.Listen("tcp","localhost:8888")conn,err:=ln.Accept()tmp:=make([]byte,10000)tmp=[]byte("abcdefghijklmnopqrstuvwxyz")conn.Write(tmp)这里是客户端接收数据conn,err:=net.Dial("tcp","localhost:8888")data:=make([]byte,100000)conn.Read(d

map 某部分的Golang for循环

尝试为map的每个部分创建一个for循环。map[asn:AS10time:1.428790768e+09ipv4s:[68.114.75.0/24216.215.56.0/22216.215.60.0/22]ipv6s:[2607:f3f8::/32]]上面是映射,我想尝试为ipv4s中的每个值创建一个for循环。我已经尝试过了,但我显然没有正确地做到这一点,因为它仅仅基于我的php知识。:forjson_map["ipv4s"]{//whatever}PHP版本,如果有人需要示例而不是我试图解释:foreach($obj->ipv4sas$value){echo$value;//r

java - java与go之间的RSA加解密

在java中我用RSA加密了一个字符串:“你好,我是明文字符串!@sina.com”然后得到:kkkHf5QSXx8aDadk66AOysmV8LOi4vWUANal+7KV6va/5ZR7PSWGRS5bzbK4vMyK9FA5CLQolr2NB6ouPNWpgq3Af7Pn/f45+pDtKRsBLX8+q/Mw7TOYR525e7nVePDBLM2wLQZ4Gh5QMQzEI3Me3Zc3030jRg0gEG13N/1EzMo=但是我试了很多方法都无法在go中解密。有什么问题?任何帮助将不胜感激,谢谢。这是我的代码:Java:publicstaticvoidmain(String

go - fmt.Printf 不执行内部循环

我正在用Go语言编写一个小程序来通过主机名检查服务器的状态是否已启动(在服务器列表之外)。我有一个函数,一旦它们从http.GET全部检索并存储到类型服务器的slice中,就会迭代服务器类型。我可以登录(在下面注释掉)并看到这两个评估都正确://fmt.Printf("Server:%s-Status:%s\n",server.Name,status)//fmt.Printf("%t\n",name==strings.ToLower(server.Name))两者都有预期的结果,但是当我运行程序时,if语句中的fmt.Printf()调用没有打印到控制台。funcgetServerSt

java - 在Golang中初始化一个新类(Convert Java to Golang)

我正在尝试将此java转换为golang,但现在我遇到了这个错误。我不知道为什么会出现这个错误。这是Java代码:ArrayListpath;//pathdoesnotrepeatfirstcellStringname;staticintcount=0;publicPath(){this.path=newArrayList();this.name="P"+(++this.count);}publicPath(Pathop){this.path=newArrayList();this.name=op.name;path.addAll((op.path));}这是我写的typePathst

arrays - 如何在 Go 中使用数组范围添加嵌套循环的索引?

我正在打印导致通过用户输入输入的总和的数字索引。我基本上使用了使用i和j的两个循环并迭代直到数组长度的传统方法。然而,当涉及到Go语言时,我们确实可以选择使用Go中的不同格式获取数组的索引和键值。这是我的工作代码:funcfindKIndex(arr[]int,kint)(int,int){index1,index2:=0,0Length:=len(arr)fori:=0;i我如何使用:做同样的事情foridx,key:=rangearr{foridx2,key2:=rangearr{//statements}}基本上,我无法弄清楚用外部索引的+1启动内部索引,或者可能在一个循环中完成

go - 使用for循环遍历 channel 时出现Goroutine死锁

我正在尝试练习goroutine和channel,我在调用gorouting和传递channel时遇到问题。goroutine将数据推送到channel中,然后主线程将打印元素。我已经使用for循环来打印内容但是得到了。fatalerror:allgoroutinesareasleep-deadlock!21goroutine1[chanreceive]:main.main()packagemainimport"fmt"funcsmallThread(aint,cchanint){c编辑:使用WaitGroup:funcsmallThread(aint,cchanint,w*sync.

golang循环初始比剩余慢

我是golang的新手,在做这个poc时,我注意到在运行for循环时有一个奇怪的行为。packagemain;import("log""strings""time")typedatastruct{elapseTimeint64datastring}funcmain(){fori:=0;i实际上,我试图实现的是删除一个简单字符串的重复项,并打印出这些信息以及所花费的时间。循环运行go例程10次,等待响应通过channel传来。2019/05/2400:55:49{18060iloveorangeslalalaapplesxd}2019/05/2400:55:49{28930loveora